/*******************************************
  Jose Andres Lara Vecino

  Author       : $Author: cainlara@gmail.com $
  Last CheckIn : $Date: 2012-06-09 16:55:13 +0000 (Sat, 09 Jun 2012) $
  Revision     : $Revision: 82 $
*******************************************/

package gui;

import gui.imagen.Imagen;

import java.awt.Color;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.BevelBorder;

import mensaje.Mensaje;

/**
 * Panel descriptor de la seccion.
 * 
 * @author jose.lara 09.06.2012
 */
public class SeccionDescripcionPanel extends JPanel {
    private static final long serialVersionUID = 1872379170296527724L;
    
    private JLabel nombreOpcionLabel    = null;
    private int tipo                    = PanelPrincipal.OPCION_DEFAULT;
    
    public SeccionDescripcionPanel(int tipo) {
        super();
        this.tipo = tipo;
        
        setBackground(Color.GRAY);
        
        setOpaque(true);
        GroupLayout groupLayout = new GroupLayout(this);
        groupLayout.setHorizontalGroup(
            groupLayout.createParallelGroup(Alignment.LEADING)
                .addComponent(getNombreOpcionLabel(), GroupLayout.DEFAULT_SIZE, 450, Short.MAX_VALUE)
        );
        groupLayout.setVerticalGroup(
            groupLayout.createParallelGroup(Alignment.LEADING)
                .addComponent(getNombreOpcionLabel(), GroupLayout.DEFAULT_SIZE, 21, Short.MAX_VALUE)
        );
        setLayout(groupLayout);
        setBorder(new BevelBorder(BevelBorder.LOWERED));
    }
    
    private JLabel getNombreOpcionLabel() {
        if(nombreOpcionLabel == null) {
            nombreOpcionLabel = new JLabel(getTextoDescripcion());
            nombreOpcionLabel.setIcon(getImagenDescripcion());
            nombreOpcionLabel.setForeground(Color.WHITE);
        }
        
        return nombreOpcionLabel;
    }
    
    private String getTextoDescripcion() {
        String textoDescripcion = null;
        
        switch(this.tipo) {
        case PanelPrincipal.OPCION_PROYECTOS:
            textoDescripcion = Mensaje.getMensaje("MENU_ITEM-VER_TODOS_PROYECTOS");
            break;
        case PanelPrincipal.OPCION_USUARIOS:
            textoDescripcion = Mensaje.getMensaje("MENU_ITEM-VER_TODOS_USUARIOS");
            break;
        default:
            throw new IllegalArgumentException("Opcion desconocida");
        }
        
        return textoDescripcion.toUpperCase();
    }
    
    private Icon getImagenDescripcion() {
        String llaveIcono = null;
        
        switch(this.tipo) {
            case PanelPrincipal.OPCION_PROYECTOS:
                llaveIcono = "PROYECTOS_24";
                break;
            case PanelPrincipal.OPCION_USUARIOS:
                llaveIcono = "USUARIOS_24";
                break;
            default:
                throw new IllegalArgumentException("Opcion desconocida");
        }
        
        return Imagen.getIcono(llaveIcono);
    }
}